const { parseString } = require('xml2js')

module.exports = {
    getUserDataAsync(req) {
        return new Promise((resolve, reject) => {
            let xmlData = ''
            req
                .on('data', data => {
                    // 流式数据注入至回调函数 将buffer转化成字符串
                    xmlData += data.toString()
                })
                .on('end', () => {
                    // 数据接收完毕
                    resolve(xmlData)
                })
        })
        
    },
    parseXMLAsync(xmlData) {
        return new Promise((resolve, reject) => {
            parseString(xmlData, { trim: true }, (err, data) => {
                if(!err) {
                    resolve(data)
                }else {
                    reject(err)
                }
            })
        })
    },
    formatJSData(jsData) {
        let message = {}
        jsData = jsData.xml
        if(typeof jsData === 'object') {
            for(let key in jsData) {
                let value = jsData[key]
                if(Array.isArray(value) && value.length > 0) {
                    message[key] = value[0]
                }
            }
        }
        return message
    }
}